// function getAge (age) {
//   // 如果是布尔值使用短路运算可能发送意外
//   age = age || 12
//   // 正确方法
//   age = age === undefined ? 12 : age
//   return age
// }
// console.log(getAge(), getAge(16)) 

// function getAge (age = 12) {
//   return age
// }
// console.log(getAge(), getAge(16)) 


// function log (...args){
//   console.log(Array.isArray(args),Array.isArray(arguments))
//   console.log(args)
// }
// log(1,'xm',true)

// const arrs = [12, 'xm', true]
// // 老的办法，使用 apply（可以以数组的形式接收参数列表）
// console.log.apply(console, arrs)
// console.log(...arrs)


// const inc = a => a + 1
// console.log(inc(18))

// console.log([1,2,3,4].filter(item=>item%2))

// const user = {
//   name: 'xiaoming',
//   sayHello () {
//     console.log(this.name) // xiaoming
//     setTimeout(function () {
//       console.log(this.name) // 会放在全局调用，undefined
//     })
//     setTimeout(() => {
//       console.log(this.name)  // xiaoming
//     })
//   },
//   // this 谁调用执行谁，不指向 obj
//   sayHello1: () => {
//     console.log(this, this.name) // {} undefined
//   }
// }
// // this.name = 'xxx' // 此时 sayHello1 才输出 xxx
// user.sayHello()
// // 在箭头函数中没有 this 机制，不会改变 this 的指向
// // js 只有两种作用域函数和全局，箭头函数 this 指向外层函数
// // obj 没有形成作用域，此处的箭头函数外层 this
// user.sayHello1()